/*
	glOutput Team Graphics Header
	Elise Eiden, Nick Taylor, Taryn Green
*/

#ifndef GRAPHICS_H
#define GRAPHICS_H

//#include <GL/glew.h>
#include <GL/freeglut.h>
#include <GL/gl.h>
#include <GL/glu.h>

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>

#include "../situationControl/Situation.h"
//#include "../keyboard_input/KeyboardHandler.h"
//#include "../situationControl/Player.cpp"
//#include "../situationControl/Room.cpp"

class KeyboardHandler;

struct glPlayer {
	float pos[3];
	float length;
	int facingHor;
	int facingVer;
};
struct glRoom { 
	float pos[3];
	float length;
};
struct glDrone {
	float pos[3];
	float length;
};
struct glShot {
	float pos[3];
	float length;
};
struct glSituation
{
	struct glPlayer player1;
	struct glPlayer player2;
	struct glRoom room;
	std::vector<struct glDrone> swarm;
	std::vector<struct glShot> bullets;
};
		
class Graphics
{
	public:
		Graphics();
		void initScene(int argc, char **argv);
		void draw(Situation situation);
		void acceptKeyboardHandler(KeyboardHandler * KH_ptr);
	private:
};

#endif
